Function.prototype.extend = function(superClass) {

	if (typeof superClass !== 'function') {
		if (typeof superClass == 'object') {
			for ( var key in superClass.prototype) {
				alert(key);
				this.prototype[key] = superClass.prototype[key];
			}
			for ( var key in superClass) {
				this.prototype[key] = superClass[key];
			}
			return this;
		} else {
			throw new Error(
					'fatal error:Function.prototype.extend expects a constructor of class');
		}
	}
	/**
	 * 创建一个中间函数对象以获取父类的原型对象
	 */
	var F = function() {
	};
	/**
	 * 设置原型对象
	 */
	F.prototype = superClass.prototype;
	/**
	 * 复制原型中的属性和方法到中间函数对象,并覆盖父类
	 */
	for ( var key in this.prototype) {
		F.prototype[key] = this.prototype[key];
	}
	/**
	 * 实例化F, 继承父类的原型中的属性和方法，而无需调用父类的构造函数实例化无关的父类成员
	 */
	this.prototype = new F();
	/**
	 * 设置构造函数指向自己
	 */
	this.prototype.constructor = this;
	/**
	 * 同时，添加一个指向父类构造函数的引用，方便调用父类方法或者调用父类构造函数
	 */
	this.superClass = superClass;
	return this;
};

function JControl() {
};
JControl.prototype = {};
JControl.prototype.label = null;
JControl.prototype.type = "text";
function JTextField() {
};
JTextField.prototype.label = null;
JTextField.prototype.type = "JTextField";
JTextField.extend(JControl);
